C++ primer学习(基础)

推荐:
比较好的在线C++工具:https://www.shucunwang.com/RunCode/cpp/

[TOC]

main函数:

  • mian()的返回类型必须是int。
  • 在大多数系统中main的返回值被用来指示状态,返回0表示成功,非0的含义由系统定义。

编译

  • c++程序通过编译器生成一个可执行文件,windows下是.exe文件,unix下可执行文件是.out(没规定可执行文件名时)。
  • GNU编译器:
1
g++ -o progname progname.cc

-o后面的参数是指定生成文件的名字
此命令在windows下生成progname.exe文件,在unix系统中生存没有后缀的文件progname,如果unix中没有指定参数-o progname则生成a.out的可执行文件。

const限定符

1.基础知识:

  • 程序是不能改变const值的
  • const对象必须初始化

2.初始化

  • 非const可以初始化const对象:
1
2
3
int a=1;
const int b=a;
int c=b;
  • 对于const变量不管是声明还是定义都添加extern关键字,这样在其他文件中都可以共享了
    定义:extern const int a=1;
    其他文件中声明:extern const int a;

3.常量引用
const int c=1; const int &ci=c;

  • 程序员把“对const的引用”简称为‘常量引用’。但是严格来说并不存在常量引用,因为引用并不是一个对象,所以没办法让引用本身恒定不变,事实上由于C++并不允许随意改变引用所绑定的对象,所以从这层上理解所有的引用又都算常量。
  • 常量引用可能引用的对象并不是一个const对象:
    int i=2; const int &b=i;

4.指针和常量

  • 指向常量的指针:想要存放常量对象的地址只能用指向常量的指针const double pi=3.14;
  • 指针的类型必须与它所指向的对象的类型一致,例外:允许一个指向常量的指针指向一个非常量对。指向常量的指针或引用,不过是指针或引用“自以为是”罢了,它们觉得自己指向了常量,所以自觉地不去改变所指向对象的值。
  • 常量指针:把指针本身定义为常量啊,不变的是指针本身的值而非指向的那个值
    常量指针int *const my=&a;
    注:
    • 常量指针必须初始化
  • 指向常量的指针和常量指针的辨别:
    const int *p:距离p最近的是*意味着p本身是一个指针,指针的类型由声明符的其余部分确定。
    int *const p距离p最近的是const,意味着p是一个常量对象,对象的类型由声明符的其他部分确定。

  • 顶层const:指针本事是个常量
    底层const:指针所指的对象是个常量

热评文章